package com.ruoyi.result.publication.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.system.domain.result_entity.Author;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 著作信息对象 result_publication
 *
 * @author ruoyi
 * @date 2025-01-14
 */
@Data
public class ResultPublicationVO extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("角色id")
    private Long roleId;

    @ApiModelProperty("角色名称")
    private String roleName;

    @ApiModelProperty("部门id")
    private Long deptId;

    @ApiModelProperty("部门名称")
    private String deptName;

    @ApiModelProperty("用户昵称")
    private String nickName;

    /** 著作ID */
    private Long id;

    /** 著作名称 */
    @Excel(name = "著作名称")
    private String title;

    /** 出版号 */
    @Excel(name = "出版号")
    private String isbn;

    /** 身份 */
    @Excel(name = "身份")
    private String role;

    /** 本人排名 */
    @Excel(name = "本人排名")
    private Long authorRank;

    /** 出版社 */
    @Excel(name = "出版社")
    private String publisher;

    /** 著作类型 */
    @Excel(name = "著作类型")
    private String type;

    /** 字数(千字) */
    @Excel(name = "字数(千字)")
    private BigDecimal wordCount;

    /** 出版地 */
    @Excel(name = "出版地")
    private String location;

    /** 出版时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出版时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishDate;

    /** 备注信息 */
    @Excel(name = "备注信息")
    private String remarks;

    /** 关联课题 */
    @Excel(name = "关联课题")
    private Long projectId;

    /** 作者信息 */
    @Excel(name = "作者信息")
    private List<Author> authorInfo;

    /** 成果同步 */
    @Excel(name = "成果同步")
    private String syncStatus;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String pdfUrl;

   /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long userId;
    
    private Integer isDeleted;

}
